<?php

namespace App\Helper;

class AlgorithmHelper
{

    /**
     * 87.扰乱字符串
     * @param $s1
     * @param $s2
     * @return array
     */
    public static function isScramble($s1, $s2)
    {
        if (strlen($s1) !== strlen($s2))
        {
            return false;
        }

        if (!(strlen($s1) >= 1 && strlen($s1) <= 30))
        {
            return false;
        }

        $s1 = strtolower($s1); $s2 = strtolower($s2);


        $s1Len = strlen($s1);

        $firstArray = [];
        // 第一次切割，所有切割方法全部收纳
        $i = 1;
        for ($i; $i < $s1Len; $i++)
        {
            $firstArray[$i][0][] = substr($s1, 0, $i);
            $firstArray[$i][1][] = substr($s1, 1, $s1Len - $i);
        }

        // 第二次切割





        print_r('<pre>');
print_r($firstArray);

        print_r('<pre/>');
exit;
        return [];
    }

    /**
     * 1.两数之和
     * @param Integer[] $nums
     * @param Integer $target
     * @return Integer[]
     */
    public static function twoSum($nums, $target)
    {
        for ($i = 0; $i < count($nums); $i++)
        {
            for ($ii = 0; $ii < count($nums); $ii++)
            {
                if ($i != $ii && $nums[$i] + $nums[$ii] == $target)
                {
                    return [$i, $ii];
                }
            }
        }

        return [];
    }

    /**
     * 80.删除有序数组中的重复项 II
     * 例：[0,0,1,1,1,1,2,3,3];
     * 返回：[0,0,1,1,2,3,3]; 返回：7
     * @param $nums
     * @return mixed
     */
    public static function removeDuplicates(&$nums)
    {
        $i = 0;
        for ($x=0; $x<count($nums); $x++ )
        {
            if ($i < 2 || $nums[$x] > $nums[$i-2])
            {
                $nums[$i++] = $nums[$x];
            }
        }

        return $i;
//        $numsKey = [];
//        $newNums = [];
//
//        foreach($nums as &$num)
//        {
//            if (!isset($numsKey[$num]))
//            {
//                $numsKey[$num] = 1;
//                $newNums[] = $num;
//            }
//            else
//            {
//                if ($numsKey[$num] == 1)
//                {
//                    $numsKey[$num] = 2;
//                    $newNums[] = $num;
//                }
//            }
//        }
//
//        return count($newNums);
    }

}
